const MyPromise = require('./MyPromise')

// const p = new MyPromise((resolve, reject) => {
//     setTimeout(() => {
//         resolve('成功')
//     }, 2000)
//     // resolve('成功')
//     // reject('失败')
// })

// // 链式调用
// p.then(value => {
//     console.log(value)
//     return 'aaa'
// }, reason => {
//     console.log(reason.message)
//     return 10000
// }).then(value => {
//     console.log(value)
// })

function p1() {
    return new MyPromise((resolve, reject) => {
        setTimeout(() => {
            resolve('p1')
        }, 2000)
    })
}
function p2() {
    return new MyPromise((resolve, reject) => {
        resolve('p2')
        // reject('p2 reject')
    })
}

// MyPromise.all(['a', 'b', p1(), p2(), 'c']).then((res) => {
//     console.log(res)
// })

p2().finally(() => {
    console.log('finally')
    return p1()
}).then(value => {
    console.log(value)
}, reason => {
    console.log(reason)
})